package mx.ipn.escom.redes.gestionarcategoriahardware.controller;

import java.util.List;

import mx.ipn.escom.redes.equipo.model.CategoriaHardware;
import mx.ipn.escom.redes.gestionarcategoriahardware.business.CategoriaHardwareBs;

import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

@Namespace("/categoriaHardware")
@Results({ @Result(name = "success", type = "redirectAction", params = {
		"actionName", "gestionar-categoria-hardware" }) })
public class GestionarCategoriaHardwareCtrl extends ActionSupport implements
		ModelDriven<CategoriaHardware> {

	private static final long serialVersionUID = 1L;

	private Integer idSel;

	private CategoriaHardware model;

	private CategoriaHardwareBs categoriaHardwareBs;

	private String nombre;

	private List<CategoriaHardware> listaCategoriaHardware;

	public String index() {
		listaCategoriaHardware = categoriaHardwareBs.findAll();
		if (listaCategoriaHardware.isEmpty()
				|| listaCategoriaHardware == null) {
			addActionMessage(getText("SIN_REGISTROS_CATEGORIA_HARDWARE"));
		}

		return "index";
	}

	public String editNew() {
		return "editNew";
	}

	public String create() {			
		categoriaHardwareBs.guardar(model);
		addActionMessage(getText("REGISTRO_CATEGORIA_HARDWARE_EXITOSO"));
		return index();
	}

	public String edit() {
		return "edit";
	}

	public String update() {
		categoriaHardwareBs.modificar(model);
		addActionMessage(getText("MODIFICACION_CATEGORIA_HARDWARE_EXITOSO"));
		return index();
	}

	public String deleteConfirm() {
		return "deleteConfirm";
	}

	public String destroy() {
		categoriaHardwareBs.eliminar(model);
		addActionMessage(getText("ELIMINACION_CATEGORIA_HARDWARE_EXITOSO"));
		return index();
	}

	/**
	 * @return the idSel
	 */
	public Integer getIdSel() {
		return idSel;
	}

	/**
	 * @param idSel
	 *            the idSel to set
	 */
	public void setIdSel(Integer idSel) {
		this.idSel = idSel;
		if (this.idSel != null) {
			model = categoriaHardwareBs.findById(idSel);
		}
		if (model.getNombre() != null) {
			setNombre(model.getNombre());
		} else {
			setNombre("");
		}
	}

	/**
	 * @return the categoriaHardwareBs
	 */
	public CategoriaHardwareBs getCategoriaHardwareBs() {
		return categoriaHardwareBs;
	}

	/**
	 * @param categoriaHardwareBs
	 *            the categoriaHardwareBs to set
	 */
	public void setCategoriaHardwareBs(CategoriaHardwareBs categoriaHardwareBs) {
		this.categoriaHardwareBs = categoriaHardwareBs;
	}

	public CategoriaHardware getModel() {
		if(model==null) {
			model = new CategoriaHardware();
		}
		return model;
	}

	/**
	 * @param model
	 *            the model to set
	 */
	public void setModel(CategoriaHardware model) {
		this.model = model;
	}

	/**
	 * @return the listaCategoriaHardware
	 */
	public List<CategoriaHardware> getListaCategoriaHardware() {
		return listaCategoriaHardware;
	}

	/**
	 * @param listaCategoriaHardware
	 *            the listaCategoriaHardware to set
	 */
	public void setListaCategoriaHardware(
			List<CategoriaHardware> listaCategoriaHardware) {
		this.listaCategoriaHardware = listaCategoriaHardware;
	}

	/**
	 * @return the nombre
	 */
	public String getNombre() {
		return nombre;
	}

	/**
	 * @param nombre
	 *            the nombre to set
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

}

